package zero.tech.games.mj.service.api;

import zero.tech.games.logic.common.Room;
import zero.tech.games.logic.data.res.ResReconnet;
import zero.tech.wsnet.controller.LogicController;

public interface IMjService {
	
	/**
	 * 中途恢复
	 * @param room
	 * @param online
	 * @return
	 */
	ResReconnet roomReconnect(Room room, LogicController online);
	
	/**
	 * 开始游戏
	 * @param room
	 */
	void gameStart(Room room);

	/**
	 * 准备开始结算
	 * @param room
	 * @param dissolutionBigCal
	 */
	void bigCalculate(Room room, int dissolutionBigCal);

	/**
	 * 处理控制牌
	 * @param room
	 * @param logicController
	 * @param info
	 * @param type
	 */
	void reqCtrlCard(Room room, LogicController controller, String info, int type);

	/**
	 * 处理出牌
	 * @param room
	 * @param userByChair
	 * @param outCard
	 */
	void reqOutCard(Room room, LogicController controller, int outCard);
	
	/**
	 * 摸牌
	 * @param isSelf
	 * @param room
	 */
	void nextGetCard(boolean isSelf, Room room);
	
	/**
	 * 游戏结束
	 * @param room
	 */
	void gameOver(Room room);


}
